Radio communication systems including communication systems that support both telephone services and dispatch services are known in the art. Such a system is disclosed for example in U.S. Pat. No. 5,457,735 entitled "Method and Apparatus for Queuing Radio Telephone Service Requests", by one of the co-inventors of the present invention. Typically, to support dispatch services, a dispatch application processor (DAP) is coupled to one or more access control gateways (ACGs). Each ACG, in turn is coupled to a plurality of radio base stations, with each base station supporting subscriber service over assigned channels within an associated coverage area or cell.
An ACG may also be coupled to a public switched telephone network, via a communications agent processor (CAP), to support telephone services to valid subscriber units in the cells associated with the particular ACG. Each ACG includes a digital computer having a queue memory and a program memory, the program memory having a program stored thereon to be executed by the digital computer. Typically, the ACG determines the radio services requested by a subscriber unit via the base stations and relays the request to the appropriate processor, i.e., to the CAP if the call type is interconnect or to the DAP if the call is a dispatch call (private dispatch call, group call, etc.). To support, therefore, the request for radio service from a system subscriber, an ACG receives resource allocation instructions, i.e., information to be used for resource allocation, from either the CAP or the DAP, and relays channel allocation information to the subscriber (via the base stations).
When a system subscriber sends out a request for dispatch service, the request is received on a primary control channel of at least one of the base stations and relayed to the associated ACG where a received message process begins. Assuming the request is valid and is for dispatch services, radio communication resources, if available, will be provided to connect the call with the called party or talk group. Should resources not be available, then a busy signal will be sent to the subscriber unit, the dispatch request will be put in a queue for an indeterminate period of time and a continuous loop started to repeatedly check whether resources are later available.
When the request is for telephone (interconnect call) service and a dedicated control resource is not presently available in the associated cell, a busy signal is sent by the ACG and depending on the communication system's overall priority scheme, the telephone request to/from a subscriber unit is terminated or optionally queued for a finite period of time, the finite period of time typically not exceeding a time that would likely lead an ordinary user to conclude that the request had somehow failed.
A typical priority scheme for dispatch and telephone service calls allows requests to be queued chronologically by the ACG in the order of occurrence, when resources are not available, and where the request at the top of the queue will be the next to be served when resources become available.
Alternatively, requests can be assigned a priority which is of higher or lower level than other requests and moved forward or backwards in non-chronological order in the queue as new requests arrive while waiting for resources to become available. For example, it is common to push telephone requests to the front of the ACG queue ahead of waiting dispatch service requests, but as explained above, only for a finite period of time (e.g., for 15 seconds), as they are deemed to be of high priority.
As another example, an emergency request may be assigned the highest priority, placed in the front of the ACG queue to be the next request served when resources become available.
Thus, each ACG has an associated priority scheme for processing radio requests by subscribers present in its associated cell. When a service request initiated by a subscriber over an available voice channel in one cell area is for a subscriber in another cell for which there is no available voice channel, the ACG associated with the initiating subscriber has no control over how the ACG associated with the called subscriber will prioritize service requests waiting for resources (voice channels) to become available.
A major drawback to this is that a voice channel which becomes available--in connection with a service request spanning multiple cells--may not always be given to the call best able to use it. For example, an ACG could have two queued requests--the first one (waiting longer) is just an initial request and the second is a responding radio waiting to join a call that already has voice transmission in one or more other cells. In such an instance, when a resource becomes available, the associated ACG will give the longer waiting call (higher priority) access to the voice channel resource, when from a system wide perspective, it might have been more prudent to give the voice channel to the second request in the queue. Conversely, if the first (longer-waiting) request in the queue was from a responding radio waiting to join a call already in progress for a long time, and the second request is an initial request to a talk group, many of the responding subscribers of which are in cells with more than enough available voice channels to participate in the talk group request, it might be considered better to give an available voice channel to the second request in the queue.
Prior art priority/queuing schemes, therefore, suffer the disadvantage of being static. That is, once an ACG-defined priority level is set for a specific group or individual during a call, that priority level remains constant throughout the call. Priorities are not allowed to change or be evaluated based on the call's progress or duration. As such, there is no facility available to allow a predefined priority level to dynamically change for calls involved in multiple-cell communications so that only that queued call which is most likely to benefit by obtaining a cell's next available resource in fact does so.
There is a need therefore to provide sufficient intelligence into the queuing process when requests for voice channels are queued in a cell such that when a voice channel becomes available it is given to the call that can gain the most benefit from it.